package com.hzy.admin.controller.system;

import com.hzy.admin.models.vo.system.TableVo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.hzy.admin.controller.ApiBaseController;
import com.hzy.admin.services.system.ISysAppLogService;
import com.hzy.admin.repository.entity.system.SysAppLog;
import com.hzy.framework.ApiResult;
import com.hzy.framework.annotation.SystemAuthority;

import java.util.Map;

/**
 *
 * 操作日志
 *
 * @author hzy
 */
@Controller
@RequestMapping("/admin/system/applog")
public class SysAppLogController extends ApiBaseController<ISysAppLogService> {
    public SysAppLogController(ISysAppLogService service) {
        super("74b837ae-d24f-4f57-b107-e20dbe70f5d3", service, "system/applog/");
    }

    /**
     * 列表页面
     *
     * @return 页面
     */
    @SystemAuthority()
    @GetMapping("/index")
    public String index(Model model) {
        return this.view("index");
    }

    /**
     * 详情页面
     *
     * @return 页面
     */
    @SystemAuthority()
    @GetMapping(value = { "/info/{id}", "/info" })
    public String info(@PathVariable(required = false) String id, Model model) {
        model.addAttribute("id", StringUtils.isEmpty(id) ? "" : id);
        return this.view("info");
    }

    /**
     * 查询列表
     *
     * @param page   页码
     * @param size   页数
     * @param search 查询
     * @return json
     */
    @PostMapping("/list/{size}/{page}")
    @ResponseBody
    public ApiResult findList(@PathVariable Integer page, @PathVariable Integer size,
            @RequestBody SysAppLog search) {
        TableVo<Map<String,Object>> tableViewDto = this.service.findList(page, size, search);
        return this.resultOk(tableViewDto);
    }

    /**
     * 根据 id 查询表单信息
     *
     * @param id id
     * @return json
     */
    @PostMapping(value = { "/find/{id}", "/find" })
    @ResponseBody
    public ApiResult findById(@PathVariable(required = false) String id) {
        return this.resultOk(this.service.findById(id));
    }

    /**
     * 保存数据
     *
     * @param dto 要保存数据
     * @return json
     */
    // @PostMapping("/save")
    // @ResponseBody
    // public ApiResult save(@RequestBody SysUserDto dto) {
    // return this.resultOk(this.service.insertOrUpdate(dto));
    // }

    /**
     * 删除
     *
     * @param ids id集合
     * @return json
     */
    // @PostMapping("/delete")
    // @ResponseBody
    // public ApiResult deleteByIds(@RequestBody List<String> ids) {
    // this.service.deleteByIds(ids);
    // return this.resultOk();
    // }
}
